package hotel.service;

import java.util.List;
import java.util.Map;

import hotel.entity.Category;
import hotel.entity.Room;

public interface IRoomService<T> extends IService<T> {

	/*
	 * 根据房间类型查找可用房间
	 */
	public Map<Integer,Room> findAvailableRoomByCategory(int categoryid);
	
	/*
	 * 根据房间类型查找所有房间
	 */
	public List<T> findRoomByCategory(int categoryid);
	
	/*
	 * 获得空房间数量
	 */
	public int getAvailableCount();
	
	/*
	 * 换房
	 */
	public boolean changeRoom(int itemid,int newRoomid,int oldRoomid);
	
	/*
	 * 获得房间统计信息
	 * String:房间类型名,String该类房间所占百分比
	 */
	public Map<String,Double> getRoomStatistics();
	
	/*
	 * 获得可用房间数量
	 * 计算方式：某一类型的房间数量-预定数量
	 */
	public int getAvailableCountByCategory(int categoryid);
	
	/*
	 * 获得可用房间数量
	 * 计算方式：某一类型的房间数量-预定数量
	 */
	public int getAvailableCountByCategory(Category category);
	
	/*
	 * 房间可入住,状态更新为空
	 */
	public boolean updateRoomState(int roomid); 
}
